Фільтрація шумових сигналів із завадою синусоїдної форми

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2010
Тип роботи:
Розрахункова робота
Предмет:
Комп’ютерна обробка вимірювальної інформації
Група:
МВ-43

Частина тексту файла

Міністерство освіти та науки України Національний університет «Львівська політехніка» Розрахункова робота з курсу «Комп’ютерна обробка вимірювальної інформації» на тему «Фільтрація шумових сигналів із завадою синусоїдної форми» Варіант №15 Завдання: 1. Задано 2 із 3 параметрів: Anois — амплітуда шумового вимірювального сигналу; Azav — амплітуда завади; К — коефіцієнт пропорційності, пов’язані співвідношенням  2. Задано розрядність АЦП, яким вимірюємо дискретні значення вимірюваного шумового сигналу, спотвореного завадою NADC = 8 ... 24 розряди 3. Оскільки вимірюємо двополярну напругу, то визначаємо кількість дискрет за рівнем сигналу: , так, наприклад для 16-розрядного АЦП кількість дискрет  хоча повна кількість дискрет для цілого сигналу . 4. Генеруємо вимірювальний шумовий сигнал з амплітудою Anois DataNois[i] = Anois * (random(Nd)/(float) Nd – 0.5)*2.; За заданою формулою згенеруються числа від –32768 до +32768 (якщо задати Nd = 65536), масштабуються до –0,5 ... +0,5, потім до –1 ... +1 і на останок будемо мати випадкові числа від –Anois до Anois. 5. Виводимо графік вимірювального шумового сигналу. 6. Генеруємо заваду заданої форми, заданої частоти (f), заданого зсуву фаз (() та кількості дискрет (n). Вибираємо час вимірювання 1 секунда. Щоб на графіку відображалась кількість періодів пропорційна f. Так для f = 3 буде 3 періоди. Крім того треба забезпечити дискретність за частотою для перетворення Фур’є з кроком 1 МГц. krok = 2*M_PI*f/n; for (i = 0 ...) DataZav[i] = Azav*sin(i*krok+() 7. Вивести графік завади. 8. Додаємо дискретні значення вимірювального шумового сигналу та завади Data[i] = DataNois[i] + DataZav[i]; 9. Виводимо графік сумарного сигналу. 10. Робимо перетворення Фур’є для сумарного сигналу і виводимо графік спектру. 11. Визначаємо середнє значення гармонік спектру сигналу Gser (додаємо всі гармоніки та ділимо на їх кількість)  12. Знаходимо середньоквадратичне відхилення ( випадкової величини Gser.  13. Виходячи із закону Релея розподілу випадкової величини  за формулою статистичної функції розподілу  знаходимо таке значення G( для якого отримана ймовірність задовольняє умові  p(G) — задане. 14. Маючи G( і Gser можемо знайти коефіцієнт обмеження спектру для методу фільтрації за рівнем  15. Проводимо фільтрацію за рівнем, тобто присвоюємо усім гармонікам, які є більшими за рівень ( ( G( середні значення гармоніки спектру Gser. 16. Графічно відображаємо спектр після фільтрації 17. Робимо зворотне перетворення Фур’є та отримуємо вимірюваний шумовий сигнал без завад 18. Відображаємо графік вимірюваного шумового сигналу за часом. Дані: № Anois Azav К NADC Форма завади f, Гц ( n p(G)  14 — 2,0 0,7 18 cинус 8 30 1150 0,95   Код програми: #include<graphics.h> #include<iostream.h> #include<complex.h> #include<stdlib.h> #include<stdio.h> #include<conio.h> #include<math.h> #define n 500 #define pG 0.95 #define Nadc 14 #define fi 30 #define K 0.7 #define f 8 #define Azav 2 int main (void) { int gdriver = DETECT, gmode, errorcode; initgraph(&gdriver, &gmode, ""); errorcode = graphresult(); if (errorcode != grOk) { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); } randomize(); long int i, j; double Y[n], X[n], DataNois[n], DataZav[n], Data[n], Xg, Yg; double Anois, h; double Xp, Xk, Xgp=20, Xgk=620; double Ygp=20, Ygk=460, Yp, Yk; double a[n], b[n], AM, BM; double Pgp=240, Pgk=20, Pk=0, Pp=0; double ag[n], bg[n], G[n]; double Amax=0, Amin=0, Bmax=0, Bmin=0; long double Nd; Anois=K*Azav; Nd=pow(2,Nadc-1); h=2*M_PI*f/n; Xp=0; Yp=0; Xk=0; Yk=0; line(Xgp,Ygk,Xgk,Ygk); line(Xgp,Ygp,Xgp,Ygk); outtextxy(40,20,"DataNois"); for (i=0;i<n;i++) { X[i]=0+i*h; Y[i]=Anois*(random(Nd)/(float)Nd-0.5)*2.; DataNois[i]=Y[i]; if (X[i]>Xk) Xk=X[i]; if (X[i]<Xp) Xp=X[i]; if (Y[i]>Yk) Yk=Y[i]; if (Y[...
Антиботан аватар за замовчуванням

12.04.2013 09:04

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини